<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel='stylesheet' href="../rurple.css" type='text/css'>
<title>神奇-第四部分</title>
</head>
<body>
<h2 class="title">20. 神奇-第四部分</h2>
<p>你可能已经发现了，当机器人放下beeper后，我们太匆忙就让他前进了。 我们应当首先检查一下是否有墙阻碍他前进。 这里有一个解决方案。</p>
<pre>
<span class="keyword">def</span> turn_right():
    repeat(turn_left, 3)

put_beeper()
<span class="comment"># begin changes</span>
<span class="keyword">if not</span> front_is_clear():
    turn_left()
<span class="comment"># end changes</span>
move()
<span class="keyword">while not</span> on_beeper():
    <span class="keyword">if</span> right_is_clear():
        turn_right()
        move()
    <span class="keyword">elif</span> front_is_clear():
        move()
    <span class="keyword">else</span>:
        turn_left()

turn_off()
</pre>
<p>现在试一下这个程序，可以发现它成功了！ 你可以想象出在哪种情况下它是不能工作的吗？</p>
<center><a href="19-amazing3.htm"><img alt="previous" src=
"../../images/previous.png"> 神奇-第三部分</a> - <a href=
"../lessons_toc.htm"><img alt="home" src="../../images/home.png"></a> - <a href=
"21-amazing5.htm">神奇-第五部分 <img alt="next" src=
"../../images/next.png"></a>
</center>
</body>
</html>
